type If<C extends boolean, T, F> = C extends true ? T : F;

// @ts-expect-error
type error = If<null, "a", "b">;

type T1 = null extends boolean ? "true" : "false";

// 知识点
// 类型兼容 | 分配规则
// null 严格模式和非严格模式的区别 // "strict": true, // "strictNullChecks": true
// 类型兼容性  - https://www.typescriptlang.org/docs/handbook/type-compatibility.html#handbook-content
